package com.ruoyi.huanghefd.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import net.sf.jsqlparser.expression.DateTimeLiteralExpression;

/**
 * 工作票表
 *
 * @TableName worksheet
 */
@TableName(value = "worksheet")
@Data
public class Worksheet implements Serializable {
    /**
     * ID
     */
    private String wsId;

    /**
     * 工作票编号
     */
    private String wsCode;

    /**
     * 工作票类型
     */
    private String wsType;

    /**
     * 工作票状态
     */
    private String wsState;

    /**
     * 工作负责人ID
     */
    private String wsPrincipalid;

    /**
     * 工作负责人
     */
    private String wsPrincipal;

    /**
     * 工作部门、班组
     */
    private String wsDept;

    /**
     * 餐补、住房补贴、出行补贴
     */
    private Integer wsSubsidy;

    /**
     * 工作班成员
     */
    private String wsMember;

    /**
     * 参加工作人数
     */
    private Integer wsMemberNum;

    /**
     * 设备（系统）编码
     */
    private String deviceCode;

    /**
     * 设备（系统）名称
     */
    private String deviceName;

    /**
     * 工作地点及内容
     */
    private String content;

    /**
     * 计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date planStarttime;

    /**
     * 计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date planEndtime;

    /**
     * 必须采取的安全措施1
     */
    private String mustSafetyMeasures1;
    /**
     * 必须采取的安全措施2
     */
    private String mustSafetyMeasures2;
    /**
     * 必须采取的安全措施3
     */
    private String mustSafetyMeasures3;
    /**
     * 必须采取的安全措施4
     */
    private String mustSafetyMeasures4;
    /**
     * 必须采取的安全措施5
     */
    private String mustSafetyMeasures5;
    /**
     * 安全措施执行情况
     */
    private String mustSafetyResult;

    /**
     * 主业签发人ID
     */
    private String mainSignerid;

    /**
     * 主业签发人
     */
    private String mainSigner;

    /**
     * 主业签发人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date mainSignerDate;

    /**
     * 工作票签发人ID
     */
    private String wsSignerid;

    /**
     * 工作票签发人
     */
    private String wsSigner;

    /**
     * 工作票签发人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsSignerDate;

    /**
     * 工作票接收人ID
     */
    private String wsReceiverid;

    /**
     * 工作票接收人
     */
    private String wsReceiver;

    /**
     * 工作票接收人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsReceiverDate;

    /**
     * 运行值班人员补充的安全措施
     */
    private String addSafetyMeasures;

    /**
     * 补充安全措施执行情况
     */
    private String addSafetyResult;

    /**
     * 工作许可人ID
     */
    private String wsLicensorid;

    /**
     * 工作许可人
     */
    private String wsLicensor;

    /**
     * 工作许可人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsLicensorDate;

    /**
     * 值班负责人ID
     */
    private String dutyPrincipalid;

    /**
     * 值班负责人
     */
    private String dutyPrincipal;

    /**
     * 值班负责人签名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date dutyPrincipalDate;

    /**
     * 批准工作结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date approveEndtime;

    /**
     * 值长
     */
    private String dutyMonitor;
    /**
     * 值长签名日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date dutyMonitorDate;
    /**
     * 批准工作开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date approveStarttime;

    /**
     * 安全措施已执行工作许可人
     */
    private String wsLicensorSafeOver;
    /**
     * 安全措施已执行工作许可人ID
     */
    private String wsLicensoridSafeOver;
    /**
     * 安全措施已执行工作许可人签发时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsLicensorSafeOverDate;
    /**
     * 安全措施已执行工作负责人
     */
    private String wsPrincipalSafeOver;
    /**
     * 安全措施已执行工作负责人ID
     */
    private String wsPrincipalidSafeOver;
    /**
     * 安全措施已执行工作负责人签发时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsPrincipalSafeOverDate;

    /**
     * 原来的工作负责人ID
     */
    private String originalPrincipalid;

    /**
     * 原来的工作负责人
     */
    private String originalPrincipal;

    /**
     * 变更后的工作负责人ID
     */
    private String changePrincipalid;

    /**
     * 变更后的工作负责人
     */
    private String changePrincipal;

    /**
     * 变更时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date changeDate;

    /**
     * 业主签发人
     */
    private String changeMainSigner;
    /**
     * 业主签发人
     */
    private String changeMainSignerid;
    /**
     * 业主签发人时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date changeMainSignerDate;
    /**
     * 变更工作票签发人
     */
    private String changeWsSigner;
    /**
     * 变更工作票签发人ID
     */
    private String changeWsSignerid;
    /**
     * 变更工作票签发人时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date changeWsSignerDate;
    /**
     * 变更工作许可人
     */
    private String changeWsLicensor;
    /**
     * 变更工作许可人
     */
    private String changeWsLicensorid;
    /**
     * 变更工作许可人时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date changeWsLicensorDate;

    /**
     * 工作班成员变更情况
     */
    private String changeMemberContext;

    /**
     * 工作票延期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsPostponeDate;

    /**
     * 检修设备试运行
     */
    private String devRunTest;
    /**
     * 检修设备再次工作
     */
    private String devRunAgain;

    /**
     * 工作终结时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsEndtime;

    private String extensionzz;
    private String extensionzzid;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date extensionzzDate;
    private String extensiongzxkr;
    private String extensiongzxkrid;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date extensiongzxkrDate;
    private String extensiongzfzr;
    private String extensiongzfzrid;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date extensiongzfzrDate;
    private String extensionzbfzr;
    private String extensionzbfzrid;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date extensionzbfzrDate;
    private String endinggzfzr;
    private String endinggzfzrid;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endinggzfzrDate;
    private String endinggzxkr;
    private String endinggzxkrid;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endinggzxkrDate;

    /**
     * 备注
     */
    private String remark;

    /**
     * 工作票 安全措施明细1
     */
    private List<WorksheetSafetyMeasures1> safetyMeasures1;
    /**
     * 工作票 安全措施明细2
     */
    private List<WorksheetSafetyMeasures2> safetyMeasures2;
    /**
     * 工作票 安全措施明细3
     */
    private List<WorksheetSafetyMeasures3> safetyMeasures3;
    /**
     * 工作票 安全措施明细4
     */
    private List<WorksheetSafetyMeasures4> safetyMeasures4;
    /**
     * 工作票 安全措施明细5
     */
    private List<WorksheetSafetyMeasures5> safetyMeasures5;
    /**
     * 工作票 补充的安全措施
     */
    private List<WorksheetSafetyMeasuresAdd> safetyMeasuresAdds;
    /**
     * 工作票 检修设备试运行
     */
    private List<WorksheetDevTry> devTrys;
    /**
     * 工作票 检修设备恢复运行
     */
    private List<WorksheetDevRecover> devRecovers;
    /**
     * 当前环节
     */
    private String currStep;

    /**
     * 当前环节接收人
     */
    private String currReceiverid;
    /**
     * 接收人
     */
    private String currReceiver;

    //===================电气票新增字段@2023-12-28=======================//
    /**
     * '工作班组人员签名id'
     */
    private String memberSignerid;
    /**
     * '工作班组人员签名'
     */
    private String memberSigner;
    /**
     * '工作人员变动工作负责人签名'
     */
    private String changePrincipalSignerid;
    /**
     * '工作人员变动工作负责人签名'
     */
    private String changePrincipalSigner;
    /**
     * '检修设备试运行-工作许可人'
     */
    private String wsTryLicensorid;
    /**
     * '检修设备试运行-工作许可人'
     */
    private String wsTryLicensor;
    /**
     * '检修设备试运行-工作票签发人'
     */
    private String wsTrySignerid;
    /**
     * '检修设备试运行-工作票签发人'
     */
    private String wsTrySigner;
    /**
     * '检修设备试运行-时间'
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsTryDate;
    /**
     * '检修设备恢复运行-工作许可人'
     */
    private String wsRecoverLicensorid;
    /**
     * '检修设备恢复运行-工作许可人'
     */
    private String wsRecoverLicensor;
    /**
     * '检修设备恢复运行-工作票签发人'
     */
    private String wsRecoverSignerid;
    /**
     * '检修设备恢复运行-工作票签发人'
     */
    private String wsRecoverSigner;
    /**
     * '检修设备恢复运行-时间'
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date wsRecoverDate;
    /**
     * '接地线编号'
     */
    private String lineNo;
    /**
     * '接地线编号组数'
     */
    private String lineNoNum;
    /**
     * '接地刀闸(小车)'
     */
    private String knifeSwitch;
    /**
     * '接地刀闸(小车)副(台)数'
     */
    private String knifeSwitchNum;
    /**
     * '指定专责监护人'
     */
    private String guardianid;
    /**
     * '指定专责监护人'
     */
    private String guardian;
    /**
     * '指定专责监护人负责监护  (地点及具体工作)'
     */
    private String guardianContxt;


    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        Worksheet other = (Worksheet) that;
        return (this.getWsId() == null ? other.getWsId() == null : this.getWsId().equals(other.getWsId()))
                && (this.getWsCode() == null ? other.getWsCode() == null : this.getWsCode().equals(other.getWsCode()))
                && (this.getWsType() == null ? other.getWsType() == null : this.getWsType().equals(other.getWsType()))
                && (this.getWsPrincipalid() == null ? other.getWsPrincipalid() == null : this.getWsPrincipalid().equals(other.getWsPrincipalid()))
                && (this.getWsPrincipal() == null ? other.getWsPrincipal() == null : this.getWsPrincipal().equals(other.getWsPrincipal()))
                && (this.getWsDept() == null ? other.getWsDept() == null : this.getWsDept().equals(other.getWsDept()))
                && (this.getWsSubsidy() == null ? other.getWsSubsidy() == null : this.getWsSubsidy().equals(other.getWsSubsidy()))
                && (this.getWsMember() == null ? other.getWsMember() == null : this.getWsMember().equals(other.getWsMember()))
                && (this.getWsMemberNum() == null ? other.getWsMemberNum() == null : this.getWsMemberNum().equals(other.getWsMemberNum()))
                && (this.getDeviceCode() == null ? other.getDeviceCode() == null : this.getDeviceCode().equals(other.getDeviceCode()))
                && (this.getDeviceName() == null ? other.getDeviceName() == null : this.getDeviceName().equals(other.getDeviceName()))
                && (this.getContent() == null ? other.getContent() == null : this.getContent().equals(other.getContent()))
                && (this.getPlanStarttime() == null ? other.getPlanStarttime() == null : this.getPlanStarttime().equals(other.getPlanStarttime()))
                && (this.getPlanEndtime() == null ? other.getPlanEndtime() == null : this.getPlanEndtime().equals(other.getPlanEndtime()))
                && (this.getMustSafetyMeasures1() == null ? other.getMustSafetyMeasures1() == null : this.getMustSafetyMeasures1().equals(other.getMustSafetyMeasures1()))
                && (this.getMustSafetyMeasures2() == null ? other.getMustSafetyMeasures2() == null : this.getMustSafetyMeasures2().equals(other.getMustSafetyMeasures2()))
                && (this.getMustSafetyMeasures3() == null ? other.getMustSafetyMeasures3() == null : this.getMustSafetyMeasures3().equals(other.getMustSafetyMeasures3()))
                && (this.getMustSafetyMeasures4() == null ? other.getMustSafetyMeasures4() == null : this.getMustSafetyMeasures4().equals(other.getMustSafetyMeasures4()))
                && (this.getMustSafetyMeasures5() == null ? other.getMustSafetyMeasures5() == null : this.getMustSafetyMeasures5().equals(other.getMustSafetyMeasures5()))
                && (this.getMustSafetyResult() == null ? other.getMustSafetyResult() == null : this.getMustSafetyResult().equals(other.getMustSafetyResult()))
                && (this.getMainSignerid() == null ? other.getMainSignerid() == null : this.getMainSignerid().equals(other.getMainSignerid()))
                && (this.getMainSigner() == null ? other.getMainSigner() == null : this.getMainSigner().equals(other.getMainSigner()))
                && (this.getMainSignerDate() == null ? other.getMainSignerDate() == null : this.getMainSignerDate().equals(other.getMainSignerDate()))
                && (this.getWsSignerid() == null ? other.getWsSignerid() == null : this.getWsSignerid().equals(other.getWsSignerid()))
                && (this.getWsSigner() == null ? other.getWsSigner() == null : this.getWsSigner().equals(other.getWsSigner()))
                && (this.getWsSignerDate() == null ? other.getWsSignerDate() == null : this.getWsSignerDate().equals(other.getWsSignerDate()))
                && (this.getWsReceiverid() == null ? other.getWsReceiverid() == null : this.getWsReceiverid().equals(other.getWsReceiverid()))
                && (this.getWsReceiver() == null ? other.getWsReceiver() == null : this.getWsReceiver().equals(other.getWsReceiver()))
                && (this.getWsReceiverDate() == null ? other.getWsReceiverDate() == null : this.getWsReceiverDate().equals(other.getWsReceiverDate()))
                && (this.getAddSafetyMeasures() == null ? other.getAddSafetyMeasures() == null : this.getAddSafetyMeasures().equals(other.getAddSafetyMeasures()))
                && (this.getAddSafetyResult() == null ? other.getAddSafetyResult() == null : this.getAddSafetyResult().equals(other.getAddSafetyResult()))
                && (this.getWsLicensorid() == null ? other.getWsLicensorid() == null : this.getWsLicensorid().equals(other.getWsLicensorid()))
                && (this.getWsLicensor() == null ? other.getWsLicensor() == null : this.getWsLicensor().equals(other.getWsLicensor()))
                && (this.getWsLicensorDate() == null ? other.getWsLicensorDate() == null : this.getWsLicensorDate().equals(other.getWsLicensorDate()))
                && (this.getDutyPrincipalid() == null ? other.getDutyPrincipalid() == null : this.getDutyPrincipalid().equals(other.getDutyPrincipalid()))
                && (this.getDutyPrincipal() == null ? other.getDutyPrincipal() == null : this.getDutyPrincipal().equals(other.getDutyPrincipal()))
                && (this.getDutyPrincipalDate() == null ? other.getDutyPrincipalDate() == null : this.getDutyPrincipalDate().equals(other.getDutyPrincipalDate()))
                && (this.getApproveEndtime() == null ? other.getApproveEndtime() == null : this.getApproveEndtime().equals(other.getApproveEndtime()))
                && (this.getDutyMonitor() == null ? other.getDutyMonitor() == null : this.getDutyMonitor().equals(other.getDutyMonitor()))
                && (this.getDutyMonitorDate() == null ? other.getDutyMonitorDate() == null : this.getDutyMonitorDate().equals(other.getDutyMonitorDate()))
                && (this.getApproveStarttime() == null ? other.getApproveStarttime() == null : this.getApproveStarttime().equals(other.getApproveStarttime()))
                && (this.getOriginalPrincipalid() == null ? other.getOriginalPrincipalid() == null : this.getOriginalPrincipalid().equals(other.getOriginalPrincipalid()))
                && (this.getOriginalPrincipal() == null ? other.getOriginalPrincipal() == null : this.getOriginalPrincipal().equals(other.getOriginalPrincipal()))
                && (this.getChangePrincipalid() == null ? other.getChangePrincipalid() == null : this.getChangePrincipalid().equals(other.getChangePrincipalid()))
                && (this.getChangePrincipal() == null ? other.getChangePrincipal() == null : this.getChangePrincipal().equals(other.getChangePrincipal()))
                && (this.getChangeDate() == null ? other.getChangeDate() == null : this.getChangeDate().equals(other.getChangeDate()))
                && (this.getChangeMemberContext() == null ? other.getChangeMemberContext() == null : this.getChangeMemberContext().equals(other.getChangeMemberContext()))
                && (this.getWsPostponeDate() == null ? other.getWsPostponeDate() == null : this.getWsPostponeDate().equals(other.getWsPostponeDate()))
                && (this.getDevRunTest() == null ? other.getDevRunTest() == null : this.getDevRunTest().equals(other.getDevRunTest()))
                && (this.getDevRunAgain() == null ? other.getDevRunAgain() == null : this.getDevRunAgain().equals(other.getDevRunAgain()))
                && (this.getWsEndtime() == null ? other.getWsEndtime() == null : this.getWsEndtime().equals(other.getWsEndtime()))
                && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getWsId() == null) ? 0 : getWsId().hashCode());
        result = prime * result + ((getWsCode() == null) ? 0 : getWsCode().hashCode());
        result = prime * result + ((getWsType() == null) ? 0 : getWsType().hashCode());
        result = prime * result + ((getWsPrincipalid() == null) ? 0 : getWsPrincipalid().hashCode());
        result = prime * result + ((getWsPrincipal() == null) ? 0 : getWsPrincipal().hashCode());
        result = prime * result + ((getWsDept() == null) ? 0 : getWsDept().hashCode());
        result = prime * result + ((getWsSubsidy() == null) ? 0 : getWsSubsidy().hashCode());
        result = prime * result + ((getWsMember() == null) ? 0 : getWsMember().hashCode());
        result = prime * result + ((getWsMemberNum() == null) ? 0 : getWsMemberNum().hashCode());
        result = prime * result + ((getDeviceCode() == null) ? 0 : getDeviceCode().hashCode());
        result = prime * result + ((getDeviceName() == null) ? 0 : getDeviceName().hashCode());
        result = prime * result + ((getContent() == null) ? 0 : getContent().hashCode());
        result = prime * result + ((getPlanStarttime() == null) ? 0 : getPlanStarttime().hashCode());
        result = prime * result + ((getPlanEndtime() == null) ? 0 : getPlanEndtime().hashCode());
        result = prime * result + ((getMustSafetyMeasures1() == null) ? 0 : getMustSafetyMeasures1().hashCode());
        result = prime * result + ((getMustSafetyMeasures2() == null) ? 0 : getMustSafetyMeasures2().hashCode());
        result = prime * result + ((getMustSafetyMeasures3() == null) ? 0 : getMustSafetyMeasures3().hashCode());
        result = prime * result + ((getMustSafetyMeasures4() == null) ? 0 : getMustSafetyMeasures4().hashCode());
        result = prime * result + ((getMustSafetyMeasures5() == null) ? 0 : getMustSafetyMeasures5().hashCode());
        result = prime * result + ((getMustSafetyResult() == null) ? 0 : getMustSafetyResult().hashCode());
        result = prime * result + ((getMainSignerid() == null) ? 0 : getMainSignerid().hashCode());
        result = prime * result + ((getMainSigner() == null) ? 0 : getMainSigner().hashCode());
        result = prime * result + ((getMainSignerDate() == null) ? 0 : getMainSignerDate().hashCode());
        result = prime * result + ((getWsSignerid() == null) ? 0 : getWsSignerid().hashCode());
        result = prime * result + ((getWsSigner() == null) ? 0 : getWsSigner().hashCode());
        result = prime * result + ((getWsSignerDate() == null) ? 0 : getWsSignerDate().hashCode());
        result = prime * result + ((getWsReceiverid() == null) ? 0 : getWsReceiverid().hashCode());
        result = prime * result + ((getWsReceiver() == null) ? 0 : getWsReceiver().hashCode());
        result = prime * result + ((getWsReceiverDate() == null) ? 0 : getWsReceiverDate().hashCode());
        result = prime * result + ((getAddSafetyMeasures() == null) ? 0 : getAddSafetyMeasures().hashCode());
        result = prime * result + ((getAddSafetyResult() == null) ? 0 : getAddSafetyResult().hashCode());
        result = prime * result + ((getWsLicensorid() == null) ? 0 : getWsLicensorid().hashCode());
        result = prime * result + ((getWsLicensor() == null) ? 0 : getWsLicensor().hashCode());
        result = prime * result + ((getWsLicensorDate() == null) ? 0 : getWsLicensorDate().hashCode());
        result = prime * result + ((getDutyPrincipalid() == null) ? 0 : getDutyPrincipalid().hashCode());
        result = prime * result + ((getDutyPrincipal() == null) ? 0 : getDutyPrincipal().hashCode());
        result = prime * result + ((getDutyPrincipalDate() == null) ? 0 : getDutyPrincipalDate().hashCode());
        result = prime * result + ((getApproveEndtime() == null) ? 0 : getApproveEndtime().hashCode());
        result = prime * result + ((getDutyMonitor() == null) ? 0 : getDutyMonitor().hashCode());
        result = prime * result + ((getDutyMonitorDate() == null) ? 0 : getDutyMonitorDate().hashCode());
        result = prime * result + ((getApproveStarttime() == null) ? 0 : getApproveStarttime().hashCode());
        result = prime * result + ((getOriginalPrincipalid() == null) ? 0 : getOriginalPrincipalid().hashCode());
        result = prime * result + ((getOriginalPrincipal() == null) ? 0 : getOriginalPrincipal().hashCode());
        result = prime * result + ((getChangePrincipalid() == null) ? 0 : getChangePrincipalid().hashCode());
        result = prime * result + ((getChangePrincipal() == null) ? 0 : getChangePrincipal().hashCode());
        result = prime * result + ((getChangeDate() == null) ? 0 : getChangeDate().hashCode());
        result = prime * result + ((getChangeMemberContext() == null) ? 0 : getChangeMemberContext().hashCode());
        result = prime * result + ((getWsPostponeDate() == null) ? 0 : getWsPostponeDate().hashCode());
        result = prime * result + ((getDevRunTest() == null) ? 0 : getDevRunTest().hashCode());
        result = prime * result + ((getDevRunAgain() == null) ? 0 : getDevRunAgain().hashCode());
        result = prime * result + ((getWsEndtime() == null) ? 0 : getWsEndtime().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", wsId=").append(wsId);
        sb.append(", wsCode=").append(wsCode);
        sb.append(", wsType=").append(wsType);
        sb.append(", wsPrincipalid=").append(wsPrincipalid);
        sb.append(", wsPrincipal=").append(wsPrincipal);
        sb.append(", wsDept=").append(wsDept);
        sb.append(", wsSubsidy=").append(wsSubsidy);
        sb.append(", wsMember=").append(wsMember);
        sb.append(", wsMemberNum=").append(wsMemberNum);
        sb.append(", deviceCode=").append(deviceCode);
        sb.append(", deviceName=").append(deviceName);
        sb.append(", content=").append(content);
        sb.append(", planStarttime=").append(planStarttime);
        sb.append(", planEndtime=").append(planEndtime);
        sb.append(", mustSafetyMeasures1=").append(mustSafetyMeasures1);
        sb.append(", mustSafetyMeasures2=").append(mustSafetyMeasures2);
        sb.append(", mustSafetyMeasures3=").append(mustSafetyMeasures3);
        sb.append(", mustSafetyMeasures4=").append(mustSafetyMeasures4);
        sb.append(", mustSafetyMeasures5=").append(mustSafetyMeasures5);
        sb.append(", mustSafetyResult=").append(mustSafetyResult);
        sb.append(", mainSignerid=").append(mainSignerid);
        sb.append(", mainSigner=").append(mainSigner);
        sb.append(", mainSignerDate=").append(mainSignerDate);
        sb.append(", wsSignerid=").append(wsSignerid);
        sb.append(", wsSigner=").append(wsSigner);
        sb.append(", wsSignerDate=").append(wsSignerDate);
        sb.append(", wsReceiverid=").append(wsReceiverid);
        sb.append(", wsReceiver=").append(wsReceiver);
        sb.append(", wsReceiverDate=").append(wsReceiverDate);
        sb.append(", addSafetyMeasures=").append(addSafetyMeasures);
        sb.append(", addSafetyResult=").append(addSafetyResult);
        sb.append(", wsLicensorid=").append(wsLicensorid);
        sb.append(", wsLicensor=").append(wsLicensor);
        sb.append(", wsLicensorDate=").append(wsLicensorDate);
        sb.append(", dutyPrincipalid=").append(dutyPrincipalid);
        sb.append(", dutyPrincipal=").append(dutyPrincipal);
        sb.append(", dutyPrincipalDate=").append(dutyPrincipalDate);
        sb.append(", approveEndtime=").append(approveEndtime);
        sb.append(", dutyMonitor=").append(dutyMonitor);
        sb.append(", dutyMonitorDate=").append(dutyMonitorDate);
        sb.append(", approveStarttime=").append(approveStarttime);
        sb.append(", originalPrincipalid=").append(originalPrincipalid);
        sb.append(", originalPrincipal=").append(originalPrincipal);
        sb.append(", changePrincipalid=").append(changePrincipalid);
        sb.append(", changePrincipal=").append(changePrincipal);
        sb.append(", changeDate=").append(changeDate);
        sb.append(", changeMemberContext=").append(changeMemberContext);
        sb.append(", wsPostponeDate=").append(wsPostponeDate);
        sb.append(", devRunTest=").append(devRunTest);
        sb.append(", devRunAgain=").append(devRunAgain);
        sb.append(", wsEndtime=").append(wsEndtime);
        sb.append(", remark=").append(remark);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}